// 入口函数
$(function () {
    // 需求1:定义校验规则
    let form = layui.form
    // form对象中有一个verify方法专门定义规则
    // 参数是对象雷翔:属性是规则名称
    form.verify({
        nickname: [
            /^[\S]{1,10}$/,
            '昵称的长度为1-10个字符'
        ]
    })
    // 需求2:渲染用户信息-封装成函数,后面还要用
    initUserInfo()
    function initUserInfo() {
        axios({
            method: 'GET',
            url: '/my/userinfo'
        }).then(res => {
            // console.log(res);
            // 判断
            if (res.data.status !== 0) {
                layer.msg(res.data.message)
            }
            // 根据官网,为form表单赋值
            // 内置模块-表单-表单赋值/取值
            form.val("formUserInfo", res.data.data)
        })
    }

    // 需求3:重置功能
    // 给form表单绑定重置事件
    // $('form').on('reset', function (e) {
    // 给button按钮绑定单击事件
    $('#btnReset').on('click', function (e) {
        // 阻止表单默认重置行为
        e.preventDefault();
        // 调用函数,重新渲染表单
        initUserInfo()
    })

    // 需求4:更改用户信息并提交
    // 给form绑定提交事件
    $("form").on('submit', function (e) {
        // 阻止表单默认提交
        e.preventDefault();
        axios({
            method: 'POST',
            url: '/my/userinfo',
            // 设置了参数,根据参数类型会设置头信息
            // content-type:application/x-www-form-urlencoded
            data: $(this).serialize()
        }).then((res) => {
            console.log(res);
            if (res.data.status != 0) {
                layer.msg(res.data.message)
            }
            // 成功提示
            layer.msg("恭喜您,修改用户信息成功!")
            // 直接调用无效,因为不是一个window对象
            window.parent.getUserInfo();
        })
    })
})